1. Technical Field
This application relates to the field of computer storage devices, and more particularly to the field of coordinating replicating data on a plurality of storage devices that are synchronized for consistent operation.
2. Description of Related Art
Host processor systems may store and retrieve data using a storage device containing a plurality of host interface units (host adapters), disk drives, and disk interface units (disk adapters). Such storage devices are provided, for example, by EMC Corporation of Hopkinton, Mass. and disclosed in U.S. Pat. No. 5,206,939 to Yanai et al., U.S. Pat. No. 5,778,394 to Galtzur et al., U.S. Pat. No. 5,845,147 to Vishlitzky et al., and U.S. Pat. No. 5,857,208 to Ofek. The host systems access the storage device through a plurality of channels provided therewith. Host systems provide data and access control information through the channels of the storage device and the storage device provides data to the host systems also through the channels. The host systems do not address the disk drives of the storage device directly, but rather, access what appears to the host systems as a plurality of logical volumes. The logical volumes may or may not correspond to the actual disk drives.
In some instances, a single application or group of related applications may use more than one storage device simultaneously. However, in such a case, it may be necessary to ensure that write operations by the application or group of applications are performed in a particular order. For example, an application that handles fault-tolerant bank transactions may only work properly if it is possible to ensure that write operations occur in a particular order. This is not difficult from within the application since the application may simply perform the first write operation, wait for an acknowledgment of that write operation, perform a second write operation, wait for acknowledgment, etc.
However, in instances where it is desirable to make a copy of the data of the plurality of storage devices, it is necessary to ensure that the duplicate storage devices do not contain the result of write operations that depend on previous write operations unless the result of the previous write operations are also duplicated. For example, if an application writes A and then writes B only after the write for A is acknowledged, it may be important that the duplicate storage devices do not end up containing B but not A. One way to address this is to suspend write operations for the application (by, for example, not acknowledging write operations to a host device running the application), perform the copying operation, and then enabling write operations for the application. The resulting duplicate storage devices will contain neither A nor B, just A, or both A and B, but will not contain just B. However, the amount of time that write operations are suspended while the data copying is occurring may be unacceptable.
The time that writes are suspended may be reduced. Mirror storage devices may be provided to maintain shadow copies of primary storage devices. At a point in time when a replica of the data is desired, the mirror storage devices are split from the primary storage devices to cause shadow copying to cease. Of course, if the primary storage devices contain data for a single application or group of applications, it is still necessary to disable write operations for the primary storage devices just prior to the split. Write operations are enabled again after the split operation is complete. If there are relatively few storage devices, the relatively small amount of time that write operations are suspended may be acceptable. However, in instances where there are a significant number of storage devices involved, the delay associated with splitting mirror devices may be unacceptable.
Accordingly, it is desirable to provide a mechanism for replicating a relatively large group of storage devices at the same time without there being a relatively long amount of time during which write operations to the storage devices are suspended.